/**
 * 全局路由守卫中间件
 * 拦截需要登录的页面，未登录时弹出登录弹窗
 */

export default defineNuxtRouteMiddleware((to, from) => {
  // 仅在客户端执行
  if (process.server) return

  const { $auth } = useNuxtApp()
  const { showLoginDialog } = useLoginDialog()

  // 需要登录的页面列表
  const protectedRoutes = ['/user', '/echart']

  // 检查当前路由是否需要登录
  const requiresAuth = protectedRoutes.some(route => to.path.startsWith(route))

  if (requiresAuth && !$auth.isLoggedIn.value) {
    // 阻止导航
    abortNavigation()
    
    // 打开登录弹窗，并传入目标路径
    showLoginDialog('login', to.fullPath)
    
    return
  }
})

